The present invention relates to a distributed computing system, and more particularly to the remote identification, assessment and management of network elements in a distributed computing system.
The resources and computation tasks in a computing system are frequently spread among a plurality of network nodes to form a distributed computing system. When centralized resources are shared by a plurality of users in a distributed system, their costs are distributed over a larger user base. In addition, the centralization of shared resources makes the administration and maintenance of these resources more efficient and also potentially more reliable due to the possibility of a centralized backup mechanism. Furthermore, the redundancy provided by most distributed computing environments improves the ability to recover from a failure by allowing processing tasks to continue on an alternate device upon a detected failure.
While the centralization of shared resources potentially makes the administration and maintenance of network elements more efficient and reliable, the increasing diversity of network elements in distributed computing systems provides additional challenges for network management systems that attempt to manage network resources in a uniform manner. In a large network environment, for example, the task of maintaining an inventory of the connected personal computers and workstations, as well as the software installed on each machine, can be overwhelming.
Thus, a number of automated system management tools are available to remotely inventory computers connected in a network environment. Such system management tools periodically survey each computer and gather hardware and software inventory data by scanning the desktop environment. For example, the System Management Server (SMS)(trademark), commercially available from Microsoft Corporation of Redmond, Wash., inventories the computers connected to a network, and the software installed on each computer. The hardware and software inventories generated by the Microsoft SMS tool can be utilized, for example, to identify computers requiring an upgrade or another reconfiguration.
In addition, the hardware and software inventories generated by such system management tools allow known configuration risks, such as a particular virus or a failure to comply with a particular problem, such as the xe2x80x9cYear 2000xe2x80x9d or xe2x80x9cEuroxe2x80x9d problems, to be remotely evaluated and remedied or reduced. In this manner, the compliance of each computer with identified risks can be evaluated to determine whether any further remedial work is required.
While such commercially available system management tools assist with the task of obtaining an inventory of hardware and software in a network environment, they suffer from a number of limitations, which if overcome, could greatly expand the utility of such system management tools. For example, in order to inventory the software installed on connected computers, currently available system management tools analyze header information for each executable file on each computer. Thus, to generate a software inventory, such system management tools must analyze voluminous and duplicated data for many computers. Thus, a need exists for an audit file for identifying software and software versions in an efficient manner. A further exists for a method and apparatus that automatically and efficiently maintains the software audit file.
Generally, a method and apparatus are disclosed for remotely identifying software and software versions using a maintained software audit file. The system management tool (SMT) performs an inventory scan of the software on each network node and obtains a list of properties for each file, such as the name and the file size of each file. The disclosed system management tool (SMT) identifies software installed on each network node by comparing file properties, such as the name and size of installed files, to a software audit file. The software audit file provides identifying information, such as the file name and corresponding size, for each known file to permit quick identification of known files.
According to one aspect of the invention, the software audit file is maintained by investigating any unknown files identified during an inventory scan with a sample of the user population having the unknown file. In one implementation, a targeted query is automatically transmitted to a sample of the user population having the unknown file. The target query requests header information for the unknown file. In this manner, previously unknown files, once identified, can be added to the software audit file.
According to another aspect of the invention, the present invention quickly identifies a network node, in order to retrieve a list of instructions to be executed by the network node. In the illustrative software audit file maintenance embodiment, a targeted query can be quickly retrieved for a member of the sample user population upon the next log-in by the user. In the illustrative embodiment, the targeted query consists of a request to locate the file, obtain requested information about the file and return the requested information to the system management tool (SMT). Generally, the present invention permits a fast machine and instruction look-up by storing a machine identifier on each network node, that can be used by the system management tool (SMT). The machine identifier can be quickly reduced to a simple index into an array, thereby permitting the system management tool (SMT) to identify the network node without using a hashing routine. In one implementation, the system management tool (SMT) server stores a client signature on each network node that includes the machine identifier.
A more complete understanding of the present invention, as well as further features and advantages of the present invention, will be obtained by reference to the following detailed description and drawings.